草庐IT

Java Math floor、ceil、rint 及 round 用法

全部标签

.net - 为什么 Math.Round(2.5) 返回 2 而不是 3?

在C#中,Math.Round(2.5)的结果是2。应该是3,不是吗?为什么在C#中是2? 最佳答案 首先,无论如何这都不是C#错误-它会是.NET错误。C#是语言-它不决定Math.Round的实现方式。其次,不-如果你阅读thedocs,您会看到默认舍入是“四舍五入”(银行四舍五入):ReturnValueType:System.DoubleTheintegernearesta.Ifthefractionalcomponentofaishalfwaybetweentwointegers,oneofwhichisevenandth

c# - EnsureChildControls() 的正确用法是什么?

当我访问依赖于子控件的复合控件的属性时,我最常使用它。但我还将它添加到控件的OnInit中,这样我就可以确保正确添加了隐藏字段。就在一分钟前,我在RenderControl中调用了它,因为我在渲染日历扩展器时遇到问题,它已修复。我开始对何时需要、何时不需要调用EnsureChildControls以及何时应该调用它感到有点困惑。欢迎任何指点。谢谢! 最佳答案 EnsureChildControls会触发CreateChildControl(如果之前未触发)。这必须在页面生命周期中只完成一次。我在OnInit/Page_Init中无条

c# - ArgumentException 的正确用法?

据我所知,ArgumentExceptions通常是这样使用的:publicvoidUpdateUser(Useruser){if(user==null)thrownewArgumentException("user");//etc...}但是如果我有这样的东西怎么办:publicvoidUpdateUser(intidOfUser){varuser=GetUserById(idOfUser);if(user==null)thrownewArgumentException("idOfUser");//etc...}那还是ArgumentException吗?

c# - 无法从高阶函数的用法中推断出类型参数

我有以下高阶函数:publicstaticFuncNot(FuncotherFunc){returnarg=>!otherFunc(arg);}并尝试这样调用它:varisValidStr=LinqUtils.Not(string.IsNullOrWhiteSpace);编译器给我“无法从用法中推断出类型参数”错误。但以下工作:varisValidStr=LinqUtils.Not((strings)=>string.IsNullOrWhiteSpace(s));我想知道有什么区别?string.IsNullOrWhiteSpace已经是具有完全相同签名的非重载函数。如评论中所述,以下

c# - 如何使用 C# 查找类或方法的用法?

在VisualStudio中,我可以右键单击类或方法并选择“查找用法”。这为我提供了我的解决方案中使用该段代码的位置列表。如何从我的代码中执行相同的操作? 最佳答案 您需要解析您的代码才能执行此操作。我不认为你可以通过反射(reflection)来做到这一点。MS一直致力于一个名为Roslyn的项目。这是一种用于.NET编译器的API。它应该为您提供所需的东西。查看this发布有关Roslyn项目的详细信息。引自帖子:ThisopensupnewopportunitiesforVSextenderstowritepowerfulre

c# - Math.Floor(double) 和 Math.Ceiling(double) 的意外行为

这个问题是关于Math.Floor(double)和Math.Ceiling(double)决定给你上一个或下一个整数值的阈值。我很不安地发现阈值似乎与Double.Epsilon无关,它是可以用double表示的最小值。例如:doublex=3.0;Console.WriteLine(Math.Floor(x-Double.Epsilon));//expected2,got3Console.WriteLine(Math.Ceiling(x+Double.Epsilon));//expected4,got3即使将Double.Epsilon乘以一个合理的位也没有成功:Console.W

C# Math.Ceiling bug 与否?

我不知道为什么Ceiling会像下图那样为什么processingFee!=Settings.PaymentProcessingFeeInPercentage*prizesSum?Viewimageatfullsizealttexthttp://img514.imageshack.us/img514/3950/csharpceilingproblem.png 最佳答案 您的百分比实际上不是0.05。它的值接近0.05...并且可能比0.05多一点。因此,当它乘以2600时,您得到的值刚好超过130.0...然后“上限”为131.0。

c# - Decimal.Round() 如何抛出 OverflowException

我在用Decimal.Round(decimald)MSDN说它可以抛出OverflowExceptionhttps://msdn.microsoft.com/en-us/library/k4e2bye2(v=vs.110).aspx我不确定这是怎么发生的。我尝试使用ilSpy查看实现并得到直到外部实现://decimal[SecurityCritical][MethodImpl(MethodImplOptions.InternalCall)]privatestaticexternvoidFCallRound(refdecimald,intdecimals);有人知道什么输入可以抛出这

c# - ConcurrentQueue<StrongBox<T>> 的用法

我基本上是在寻找一个线程中从相机获取的图像集合的容器。由于ConcurrentQueue是线程安全的,所以我想使用它。但是在调试我的代码时,我发现了thisarticle说Iftheelementsaresmall,you’llprobablynevernoticethis.If,however,theelementsholdontolargeresources(e.g.eachelementisahugeimagebitmap),it’spossibleyoucouldseetheimpactofthis(oneworkaroundistoqueueawrapperobject,e.

C# MEF 与静态类的用法

我的解决方案中有一个静态类,用于处理各种程序集。我想通过MEF链接它们,所以我在类中创建了一个字段。[Import(typeof(A))]staticprivateA_a1;然后我有一个方法,我将程序集名称作为参数传递给该方法:publicstaticALoadPackage(stringfilePath){varcatalog=newAggregateCatalog();catalog.Catalogs.Add(newAssemblyCatalog(filePath));var_container=newCompositionContainer(catalog);???}那么现在有没